<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>标题</title>
  <script>
    //1.继承的几种方式

    //a.混入式
    // var wangjianlin = {
    //   house:{
    //     price:5000000,
    //     address:"东京"
    //   },
    //   car:{
    //     price:1000000,
    //     brand:"法拉利"
    //   }
    // }
    // var wangsicong = {
    //   girlFriends:["豆得儿","伊素婉","林更新","0001"]
    // }
    // //wangsicong对象,想有wangjianlin这个这个对象里面的房和车.就让wangsicong这个对象,继承wangjianlin这个对象.
    // //遍历对象,拿到这个对象里面的所有的东西, 给要继承的对象添加.
    // for(var key in wangjianlin){
    //   wangsicong[key] = wangjianlin[key];
    // }
    // console.log(wangsicong);


    //b.替换原型的方式
    // var wangjianlin = {
    //   house:{
    //     price:5000000,
    //     address:"东京"
    //   },
    //   car:{
    //     price:1000000,
    //     brand:"法拉利"
    //   }
    // }
    // //渣男构造函数
    // function ZhaNan(gfs){
    //   this.gfs = gfs;
    // }
    // // ZhaNan.prototype.huaQian = function () {
    // //   console.log("很会花钱骗女孩子....");
    // // }
    // //ZhaNan构造函数创建出来的对象,想拥有wangjianlin这个对象的房和车. 就让这个创建的对象,继承wangjianlin这个对象.
    // //修改原型,如果原来的原型中有成员,那么修改了原型后会丢失原来的成员.
    // ZhaNan.prototype = wangjianlin;
    //
    // var wangsicong = new ZhaNan(["豆得儿","伊素婉","林更新","0001"]);
    // wangsicong.huaQian();



    //c.混合式
    var wangjianlin = {
      house:{
        price:5000000,
        address:"东京"
      },
      car:{
        price:1000000,
        brand:"法拉利"
      }
    }
    //渣男构造函数
    function ZhaNan(gfs){
      this.gfs = gfs;
    }
    ZhaNan.prototype.huaQian = function () {
      console.log("很会花钱骗女孩子....");
    }
    //ZhaNan构造函数创建出来的对象,想拥有wngjianlin这个对象的成员,就要继承.
    //没有修改原型,而是给原型中添加成员.
    for(var key in wangjianlin){
      ZhaNan.prototype[key] = wangjianlin[key];
    }

    //既拿到了继承对象的成员,原来原型中的成员也不会丢失.
    var wangsicong = new ZhaNan(["豆得儿","伊素婉","林更新","0001"]);
    console.log(wangsicong.house);
    wangsicong.huaQian();


  </script>
</head>
<body>

</body>
</html>